<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>GNU Radio&#39;s DPD Package: gr::dpd::predistorter_training Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">GNU Radio&#39;s DPD Package
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classgr_1_1dpd_1_1predistorter__training.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classgr_1_1dpd_1_1predistorter__training-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">gr::dpd::predistorter_training Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Performs predistortion of the input stream to be fed to the Power Amplifier (PA).  
 <a href="classgr_1_1dpd_1_1predistorter__training.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="predistorter__training_8h_source.html">predistorter_training.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for gr::dpd::predistorter_training:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classgr_1_1dpd_1_1predistorter__training.png" usemap="#gr::dpd::predistorter_5Ftraining_map" alt=""/>
  <map id="gr::dpd::predistorter_5Ftraining_map" name="gr::dpd::predistorter_5Ftraining_map">
<area href="classgr_1_1dpd_1_1predistorter__training__impl.html" alt="gr::dpd::predistorter_training_impl" shape="rect" coords="0,112,200,136"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a703d82ec1dfe5d94b43123c64c78e427"><td class="memItemLeft" align="right" valign="top">typedef boost::shared_ptr&lt; <a class="el" href="classgr_1_1dpd_1_1predistorter__training.html">predistorter_training</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr_1_1dpd_1_1predistorter__training.html#a703d82ec1dfe5d94b43123c64c78e427">sptr</a></td></tr>
<tr class="separator:a703d82ec1dfe5d94b43123c64c78e427"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:aec85868863464edd989257e1caf50299"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classgr_1_1dpd_1_1predistorter__training.html#a703d82ec1dfe5d94b43123c64c78e427">sptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr_1_1dpd_1_1predistorter__training.html#aec85868863464edd989257e1caf50299">make</a> (const std::vector&lt; int &gt; &amp;dpd_params, std::string mode, const std::vector&lt; gr_complex &gt; &amp;taps)</td></tr>
<tr class="memdesc:aec85868863464edd989257e1caf50299"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make a <a class="el" href="classgr_1_1dpd_1_1predistorter__training.html" title="Performs predistortion of the input stream to be fed to the Power Amplifier (PA). ...">predistorter_training</a> block.  <a href="#aec85868863464edd989257e1caf50299">More...</a><br /></td></tr>
<tr class="separator:aec85868863464edd989257e1caf50299"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Performs predistortion of the input stream to be fed to the Power Amplifier (PA). </p>
<p>It has to be necessarily supplied with the parameters (as complex vector) of the behavioral model (GMP) used for estimation of the PA model coefficients or predistortion coefficients (inverse of PA model estimated).</p>
<p>It can operate in both Static and Training modes of predistortion.</p>
<ul>
<li>In static mode, predistortion coefficients are given by user as complex_vector parameter.</li>
<li>In training mode, it is necessary to connect 'taps' input message-port to a postdistorter block passing message 'taps' after adaptive-estimation.</li>
</ul>
<p>It multiplies GMP row vector for each input complex value with predistorter coefficients column vector (of same order) to give a predistorted input to PA.</p>
<p>Mathematically, Output[m] = Input[m] * taps (where Input[m] is input GMP vector(row) and 'taps' is weight vector(col)). </p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a703d82ec1dfe5d94b43123c64c78e427"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a703d82ec1dfe5d94b43123c64c78e427">&#9670;&nbsp;</a></span>sptr</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef boost::shared_ptr&lt;<a class="el" href="classgr_1_1dpd_1_1predistorter__training.html">predistorter_training</a>&gt; <a class="el" href="classgr_1_1dpd_1_1predistorter__training.html#a703d82ec1dfe5d94b43123c64c78e427">gr::dpd::predistorter_training::sptr</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aec85868863464edd989257e1caf50299"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec85868863464edd989257e1caf50299">&#9670;&nbsp;</a></span>make()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classgr_1_1dpd_1_1predistorter__training.html#a703d82ec1dfe5d94b43123c64c78e427">sptr</a> gr::dpd::predistorter_training::make </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>dpd_params</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>mode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; gr_complex &gt; &amp;&#160;</td>
          <td class="paramname"><em>taps</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Make a <a class="el" href="classgr_1_1dpd_1_1predistorter__training.html" title="Performs predistortion of the input stream to be fed to the Power Amplifier (PA). ...">predistorter_training</a> block. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dpd_params</td><td>The (K_a, L_a, K_b, L_b, M_b) int_vector denoting the GMP model parameters or DPD parameters. Used to determine the order of GMP vector generated for each input for its predistortion. </td></tr>
    <tr><td class="paramname">mode</td><td>Modes of Operation, i.e., Training or Static. </td></tr>
    <tr><td class="paramname">taps</td><td>Predistortion coefficients or taps as complex_vector (Optional ,i.e., Parameter only in static mode). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="predistorter__training_8h_source.html">predistorter_training.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespacegr.html">gr</a></li><li class="navelem"><a class="el" href="namespacegr_1_1dpd.html">dpd</a></li><li class="navelem"><a class="el" href="classgr_1_1dpd_1_1predistorter__training.html">predistorter_training</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
